iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 14
1

前言

在結束 Node 內容的講解後,準備進入新的單元,也就是啟動檔 Launch。如同名字一般,將我們所想要的 pakage 或是模擬器合併放入後,實現一件開啟的檔案格式,但首先我們在介紹 launch 之前,要對 xml 有個認識。
這個檔案是甚麼呢?它的用途又在哪?之後有哪些地方會用到呢?我們就來看看吧!

Xml 概念

XML全名是可延伸標記式語言 ( Extensible Markup Language ),這邊我們只簡單的講述概念,這就是一種為了給電腦看,而建立的一套標準化的資訊格式,想深度探索的可以參考 這裡 的資料連結。首先在我們在 word 檔、launch 檔、模型的 sdf 檔以及一些描述檔如 xacro 中,都能看到他的身影。如果曾經做過網頁設計的朋友,=應該對它不陌生,大家比較熟悉的 HTML 檔,=就是相似的檔案類型。不同的是 HTML 檔裡面的標籤,都是固定的, Xml 則可以自行設定。至於標籤是什麼?我們就接著看下去吧!

在這些文件裡他所扮演的角色,基本上是一個單純的文字檔,文件由個性資料(character data)和記號(markup)兩者組合。 整個 XML 文件可以視為一個枝狀延伸結構的文件,加上其他的宣告與標籤稱之為此 XML 文件的物質結構(Physical Structures),由 <> 所包裹的稱為標籤,中間的文字稱為元素(element),注意這邊!標籤必須要成對出現,否則系統在判讀時,會產生錯誤的情況。

標籤之間的稱之為內容 (content) ,標籤包括了開始標籤(start tag / open tag)如<tel>與結束標籤 (end tag / close tag) 如:</tel>,其實差別就在結束標多了一斜槓,我們還可以在開頭標內添加屬性 (attribute) ,也就是對整個標籤進行更詳細的述說,例如:<sdf version=”1.4”>,sdf後面的version=”1.4”就是對<sdf>這標籤的補充闡述。

(1)被包含在其他元素中的元素稱之為附屬元素 (child) 或 simple type ,如...、...裡面所包含的就是你對這個附屬標籤設定的資料,通常會在主元素包圍下以空格區分主次,可以藉由等等的world來做觀看。

(2)包含了副屬元素的元素稱之為主元素 (parent) 或 complex type ,如.....、…./

在這引用一下 world 檔來做說明, world 的用途之後會在別篇進行講說

<sdf version=”1.4”>  # 對這次檔案所使用的版本說明
 <world name=”default”> # 建構世界 使用預設資料
  <include>              # 加入模型或是導入內容的主標籤
   <uri>model://sun</uri> # include 的附屬標籤 加入太陽模型
  </include>   # 結束標與include成對出現
  <include>
   <uri>model://ground_plane</uri> #加入地面模型
  </include>
  <include>
   <uri>model://double_pendulum_with_base</uri> # 雙擺基礎
   <name>pendulum_thick_mud</name> # 命名
   <pose>-2.0 0 0 0 0 0</pose> # 定義在世界裡的座標
  </include>
……
 </world>
</sdf>

從上面我們可以看到,最大的主標籤是<sdf>,其他的內容都是它的附屬,我們可藉此觀察到附屬與主標籤是相對的,要看其擺放的位置,比如<include><uri>,雖然前者我們可以知道是後者的主標籤,對於 <world> 或是 <sdf> 來說的身份又變了。

結語

今天幫大家說明了一下, Xml 的概念,有了概念後在去觀看檔案時就不會不知所措了,至少能夠大致推論內容,想當初筆者在第一次看到如此形式的文字檔案時,真的一頭霧水,簡直是在研究馬雅文明的古文,希望這次做些介紹後,幫助沒學過的朋友更容易地去掌握,當然它的深度絕對不止這些,但以基本的運用來說應該不成問題了。明天我們會介紹有甚麼樣的檔案會用這樣的語法去寫,分別應對的應用軟體是什麼,以及理解我們以後會進行安裝教學的工具軟體。
https://ithelp.ithome.com.tw/upload/images/20200929/20129807NHkaoTJTeT.png


上一篇
[DAY 13] ROS Services & Parameters 的介紹
下一篇
[DAY 15] Xml的介紹與運用
系列文
ROS系統控制自走車搭配點雲雷達(隧道檢測裝置)30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言